package com.weijianhuawen.wjblog.web.mode.vo.user;

import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import java.time.LocalDate;

/**
 * @version: java version 8
 * @Author: weijianhuawen
 * @description:
 * @date: 2024-12-10 13:19
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel(value = "用户注册请求实体")
public class RegisterUserReqVo {
    // 用户名：必填 16 字符以内
    @NotBlank(message = "用户名不能为空！")
    @Length(min = 1, max = 16, message = "用户名字符个数需控制在1-16个字符")
    private String username;
    // 昵称：选填，不填设置为用户名，限制在16字符以内
    @Length(max = 16, message = "昵称字符个数需控制在16个以内")
    private String nickname;
    // 邮箱：必填，用于发送评论提示
    @NotBlank(message = "邮箱不能为空！")
    @Email(message = "邮箱格式不正确！")
    private String mail;
    // 密码：必填，控制在24个字符以内
    @NotBlank(message = "注册密码不能为空！")
    @Length(min = 4, max = 24, message = "密码长度需控制在4-24个字符以内！")
    private String password;
    // 个性签名：选填，不填设置默认签名
    @Length(max = 127, message = "签名超过限定值")
    private String signature;
    // 用户个人介绍：不超过256字符
    @Length(max = 255, message = "个人介绍字数超过限定值")
    private String introduce;
    // 用户github
    private String github;
    // 用户gitee
    private String gitee;
    // 用户个人博客
    private String personBlog;
    // qq号码：选填
    @Length(min = 1, max = 16, message = "qq号码格式不正确！")
    private String qqId;
    // 手机号：选填
    @Length(min = 3, max = 16, message = "手机号格式不正确")
    private String phoneNumber;
    // 头像地址：选填，不填则设置为默认头像
    private String avatar;
    // 性别：选填，不填自动设置为保密, 0 女生 1 男生 2 保密
    private Integer sex;
    // 生日：选填，默认设置为注册当天
    private LocalDate birthday;
    // 所在地区
    private String localCity;
    // 毕业院校
    private String university;
}
